﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace RiadenieProjektov
{
    class Uzivatel : Tabulka
    {
        public Uzivatel()
        {
            this.nazovTabulky = "uzivatelia";

            this.stlpce.Add(new Stlpec("pozicieId",         System.Data.SqlDbType.UniqueIdentifier));
            this.stlpce.Add(new Stlpec("menoPriezvisko",    System.Data.SqlDbType.VarChar));
            this.stlpce.Add(new Stlpec("mzdaNaHod",         System.Data.SqlDbType.Decimal));
            this.stlpce.Add(new Stlpec("prihlasovacieMeno", System.Data.SqlDbType.VarChar));
            this.stlpce.Add(new Stlpec("heslo",             System.Data.SqlDbType.VarChar));
            this.stlpce.Add(new Stlpec("rodneCislo",        System.Data.SqlDbType.Char));
            this.stlpce.Add(new Stlpec("cisloUctu",         System.Data.SqlDbType.Char));
            this.stlpce.Add(new Stlpec("poznamka",          System.Data.SqlDbType.Text));
        }

        public RiadenieProjektov.KChyba prihlas(string meno, string heslo)
        {
            try
            {
                string stmt =   " SELECT pozicieId, rodneCislo" +
                                " FROM " + nazovTabulky +
                                " WHERE prihlasovacieMeno = '" + meno + "' AND heslo = '" + heslo + "'";
                Console.WriteLine(stmt);
                SqlCommand cmd = new SqlCommand(stmt, conn);
                conn.Open();
                SqlDataReader dataReader = cmd.ExecuteReader();
                RiadenieProjektov.KChyba pomReturn = KChyba.KonNeuspesnePrihlasenie;
                if (dataReader.Read())
                {
                    Console.WriteLine("nacitane ");
                    Console.WriteLine("dataReader[pozicieId] = " + dataReader["pozicieId"]);
                    Console.WriteLine("dataReader[rodneCislo] = " + dataReader["rodneCislo"]);
                    pomReturn = KChyba.KonOk;
                }
                else
                {
                    Console.WriteLine("nespravne prihlasenie");
                }
                dataReader.Close();
                conn.Close();
                return pomReturn;
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine("Osetrena vynimka: " + e.Message);
                return RiadenieProjektov.KChyba.KonChybneConnection;
            }
            catch (SqlException e)
            {
                Console.WriteLine("Osetrena vynimka: " + e.Message);
                return RiadenieProjektov.KChyba.KonChybnaQuerry;
            }
            catch (Exception e)
            {
                Console.WriteLine("Osetrena vynimka: " + e.Message);
                return RiadenieProjektov.KChyba.KonInyError;
            }
            finally
            {
                this.conn.Close();
            }
        }

        public RiadenieProjektov.KChyba prihlas2(string meno, string heslo, out int pozicia)
        {
            pozicia = 0;
            SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from " + nazovTabulky, this.conn);
            DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet, nazovTabulky);
            DataRow[] rows = dataSet.Tables[nazovTabulky].Select("prihlasovacieMeno = '" + meno + "' AND heslo = '" + heslo + "'");
            if (rows.Length == 1)
            {
                DataRow row = rows[0];
                pozicia = int.Parse(row["pozicieId"].ToString());
                return KChyba.KonOk;
            }
            else{
                if (rows.Length > 1)
                {
                    Console.WriteLine("Dva rovnake zaznamy");
                }
                return KChyba.KonNeuspesnePrihlasenie;
            }
        }
    }
}